package com.example.server.web.controller;


import com.example.server.web.domain.Role;
import com.example.server.web.domain.SysUser;
import com.example.server.web.domain.UserRole;
import com.example.server.web.service.UserRoleService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.ibatis.annotations.Delete;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author 作者
 * @since 2023-04-04
 */
@Api(tags = {"权限接口"})
@RestController
@RequestMapping("/user-role")
public class UserRoleController {

    @Autowired
    private UserRoleService userRoleService;

    /**
     * 查询用户与角色关系
     *
     */
    @ApiOperation("查询用户的角色信息")
    @GetMapping("/select/{userId}")
    List<Role> selectUserRoles(@PathVariable("userId") Long userId){
        return userRoleService.getRolesByUserId(userId);
    }

    /**
     * 增加用户与角色关系
     *
     */
    @ApiOperation("增加用户与角色关系")
    @PostMapping("/add")
    Integer insertUserRoles(@RequestBody UserRole userRole){
        return userRoleService.insertUserRoles(userRole.getUserId(), userRole.getRoleIds());
    }

    /**
     * 更新用户与角色关系
     *
     */
    @ApiOperation("更新用户与角色关系")
    @PutMapping("/update")
    Integer updateUserRoles(@RequestBody UserRole userRole){
        return userRoleService.updateUserRoles(userRole.getUserId(), userRole.getRoleIds());
    }

    /**
     * 删除用户与角色关系
     *
     */
    @ApiOperation("删除用户与角色关系")
    @DeleteMapping("/delete/{userId}")
    Integer deleteUserRoles(@PathVariable("userId") Long userId){
        return userRoleService.deleteUserRoles(userId);
    }

}
